package logica;

import java.io.File;
import java.io.IOException;
import dados.Aluno;
import corretor.Correcao;
import corretor.Configuracao;
import dados.PastaCorrecao;
import gui.JanelaProgresso;

/**
 * Esta classe testa a configura��o do programa de acordo com o diretorio informado
 * pelo usu�rio, ou seja, testa se o diret�rio est� nos padr�es que o programa exige.
 */
public class TestaConfiguracao {
    
    /**
     * Testa se a configura��o das pastas e arquivos no diret�rio informado segue
     * os padr�es que o programa exige.
     */
    public void testarConfiguracao(File diretorio) throws IOException {
        if (diretorio == null) {
             throw new IOException();
        }
        
        Configuracao config = new Configuracao(diretorio);
        PastaCorrecao.setInstancia(config.escanearPastaCorrecao());
        try {
            Aluno[] alunos = PastaCorrecao.getInstancia().getAlunos();
            int i = 0;
            
            JanelaProgresso jan = new JanelaProgresso();
            jan.start();
            for (Aluno aluno : alunos) {
                i++;
                jan.insereMensagem("Aluno: " + aluno.getFontes()[0]
                        .getArquivo().getName().substring(0,aluno.getFontes()[0]
                        .getArquivo().getName().length() - 2));

                Correcao cor = new Correcao(aluno);
                cor.criarDiretorios();
                cor.criarArquivoQuestoesAluno();
                cor.compilarFontes();
            }
            jan.fechaJanela();
            GerenciaSerializacao gerSer = new GerenciaSerializacao();
            gerSer.serializar();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}